A synchronous client for the PostgreSQL database.
Example
use postgres::{Client, NoTls};
# fn main() -> Result<(), postgres::Error> {
let mut client = Client::connect("host=localhost user=postgres", NoTls)?;
client.batch_execute("
CREATE TABLE person (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
data BYTEA
)
")?;
let name = "Ferris";
let data = None::<&[u8]>;
client.execute(
"INSERT INTO person (name, data) VALUES ($1, $2)",
&[&name, &data],
)?;
for row in client.query("SELECT id, name, data FROM person", &[])? {
let id: i32 = row.get(0);
let name: &str = row.get(1);
let data: Option<&[u8]> = row.get(2);
println!("found person: {} {} {:?}", id, name, data);
}
# Ok(())
# }
Implementation
This crate is a lightweight wrapper over tokio-postgres. The postgres::Client
is simply a wrapper around a
tokio_postgres::Client
along side a tokio Runtime
. The client simply blocks on the futures provided by the async
client.
SSL/TLS support
TLS support is implemented via external libraries. Client::connect
and Config::connect
take a TLS implementation
as an argument. The NoTls
type in this crate can be used when TLS is not required. Otherwise, the
postgres-openssl
and postgres-native-tls
crates provide implementations backed by the openssl
and native-tls
crates, respectively.
Features
The following features can be enabled from Cargo.toml
:
Feature | Description | Extra dependencies | Default |
---|---|---|---|
with-bit-vec-0_6 |
Enable support for the bit-vec crate. |
bit-vec 0.6 | no |
with-chrono-0_4 |
Enable support for the chrono crate. |
chrono 0.4 | no |
with-eui48-0_4 |
Enable support for the eui48 crate. |
eui48 0.4 | no |
with-geo-types-0_4 |
Enable support for the 0.4 version of the geo-types crate. |
geo-types 0.4 | no |
with-geo-types-0_5 |
Enable support for the 0.5 version of the geo-types crate. |
geo-types 0.5 | no |
with-serde_json-1 |
Enable support for the serde_json crate. |
serde_json 1.0 | no |
with-uuid-0_8 |
Enable support for the uuid crate. |
uuid 0.8 | no |
with-time-0_2 |
Enable support for the time crate. |
time 0.2 | no |